package com.jyw.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jyw.system.domain.SysMessage;
import com.jyw.system.domain.dto.SysMessageAddDto;
import com.jyw.system.domain.dto.SysMessageEditDto;
import com.jyw.system.domain.dto.SysMessagePageDto;
import com.jyw.system.domain.vo.SysMessageVo;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
 * 系统消息Service接口
 *
 * @author zhangcheng
 * @date 2024-01-23
 */
public interface ISysMessageService extends IService<SysMessage> {

    /**
     * 消息发送
     *
     * @param addDto
     */
    void sendMessage(SysMessageAddDto addDto);

    /**
     * 发送系统消息
     *
     * @param messageType
     * @param receiver
     * @param messageContent
     */
    void sendSysMessage(Integer messageType,Long receiver,String messageContent);

    /**
     * 批量发送系统消息
     *
     * @param messageType
     * @param receivers
     * @param messageContent
     */
    void sendBatchSysMessage(Integer messageType,List<Long> receivers,String messageContent);

    /**
     * 分页查询用户系统消息
     *
     * @param pageDto
     * @return
     */
    List<SysMessageVo> pageList(SysMessagePageDto pageDto);

    /**
     * 查询用户未读消息
     *
     * @param userId
     * @return
     */
    Long getCount(Long userId);

    /**
     * 查询用户系统消息
     *
     * @param id
     * @return
     */
    SysMessageVo selectSysMessageById(Long id);

    /**
     * 修改系统消息
     *
     * @param editDto
     */
    void edit(SysMessageEditDto editDto);

    /**
     * 批量标记已读
     *
     * @param ids
     */
    void batchReading(Long[] ids);

    /**
     * 全部标记已读
     *
     * @param receiver
     */
    void allReading(Long receiver);
}
